// @ts-nocheck

/**
* generate by lcc-framework
*/
var protocol = globalThis.lcc.protocol;
if(!protocol){
	protocol = {};
	globalThis.lcc.protocol = protocol;
}

protocol.TYPESCRIPTTEST1 = 1000;
protocol.TYPESCRIPTTEST2 = 1001;
protocol.TYPESCRIPTTEST3 = 1002;
protocol.PROTOBUFFTEST = 1003;

var enumMap = protocol.EnumTest;
if(!enumMap){
	enumMap = {};
	protocol.EnumTest = enumMap;
}
enumMap.ENUM1 = 0;
enumMap.ENUM2 = 1;
enumMap.ENUM3 = 2;



var pbMgr = globalThis.lcc.pbMgr;
// source: resources.proto
/**
 * @fileoverview
 * @enhanceable
 * @suppress {messageConventions} JS Compiler reports an error if a variable or
 *     field starts with 'MSG_' and isn't a translatable message.
 * @public
 */
// GENERATED CODE -- DO NOT EDIT!
/* eslint-disable */
// @ts-nocheck

var jspb = globalThis.lcc.__jspb;
var goog = jspb;
var global = globalThis;

goog.exportSymbol('proto.resources.ProtoBuffTest', null, global);
goog.exportSymbol('proto.resources.TypescriptTest1', null, global);
goog.exportSymbol('proto.resources.TypescriptTest2', null, global);
goog.exportSymbol('proto.resources.TypescriptTest3', null, global);

/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.resources.TypescriptTest1 = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.resources.TypescriptTest1.repeatedFields_, null);
};
goog.inherits(proto.resources.TypescriptTest1, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.resources.TypescriptTest1.displayName = 'proto.resources.TypescriptTest1';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.resources.TypescriptTest2 = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.resources.TypescriptTest2.repeatedFields_, null);
};
goog.inherits(proto.resources.TypescriptTest2, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.resources.TypescriptTest2.displayName = 'proto.resources.TypescriptTest2';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.resources.TypescriptTest3 = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.resources.TypescriptTest3.repeatedFields_, null);
};
goog.inherits(proto.resources.TypescriptTest3, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.resources.TypescriptTest3.displayName = 'proto.resources.TypescriptTest3';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.resources.ProtoBuffTest = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.resources.ProtoBuffTest, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.resources.ProtoBuffTest.displayName = 'proto.resources.ProtoBuffTest';
}

/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.resources.TypescriptTest1.repeatedFields_ = [3,6,9,13,17];



if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.resources.TypescriptTest1.prototype.toObject = function(opt_includeInstance) {
  return proto.resources.TypescriptTest1.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.resources.TypescriptTest1} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.resources.TypescriptTest1.toObject = function(includeInstance, msg) {
  var f, obj = {
    numberv: jspb.Message.getFieldWithDefault(msg, 2, 0),
    numbergList: (f = jspb.Message.getRepeatedField(msg, 3)) == null ? undefined : f,
    numbermMap: (f = msg.getNumbermMap()) ? f.toObject(includeInstance, undefined) : [],
    stringv: jspb.Message.getFieldWithDefault(msg, 5, ""),
    stringgList: (f = jspb.Message.getRepeatedField(msg, 6)) == null ? undefined : f,
    stringmMap: (f = msg.getStringmMap()) ? f.toObject(includeInstance, undefined) : [],
    enumv: jspb.Message.getFieldWithDefault(msg, 8, 0),
    enumgList: (f = jspb.Message.getRepeatedField(msg, 9)) == null ? undefined : f,
    enumm1Map: (f = msg.getEnumm1Map()) ? f.toObject(includeInstance, undefined) : [],
    enumm2Map: (f = msg.getEnumm2Map()) ? f.toObject(includeInstance, undefined) : [],
    booleanv: jspb.Message.getBooleanFieldWithDefault(msg, 12, false),
    booleangList: (f = jspb.Message.getRepeatedBooleanField(msg, 13)) == null ? undefined : f,
    booleanm1Map: (f = msg.getBooleanm1Map()) ? f.toObject(includeInstance, undefined) : [],
    booleanm2Map: (f = msg.getBooleanm2Map()) ? f.toObject(includeInstance, undefined) : [],
    uint8arrayv: msg.getUint8arrayv_asB64(),
    uint8arraygList: msg.getUint8arraygList_asB64(),
    uint8arraym1Map: (f = msg.getUint8arraym1Map()) ? f.toObject(includeInstance, undefined) : [],
    uint8arraym2Map: (f = msg.getUint8arraym2Map()) ? f.toObject(includeInstance, undefined) : []
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.resources.TypescriptTest1}
 */
proto.resources.TypescriptTest1.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.resources.TypescriptTest1;
  return proto.resources.TypescriptTest1.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.resources.TypescriptTest1} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.resources.TypescriptTest1}
 */
proto.resources.TypescriptTest1.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 2:
      var value = /** @type {number} */ (reader.readInt32());
      msg.setNumberv(value);
      break;
    case 3:
      var values = /** @type {!Array<number>} */ (reader.isDelimited() ? reader.readPackedInt32() : [reader.readInt32()]);
      for (var i = 0; i < values.length; i++) {
        msg.addNumberg(values[i]);
      }
      break;
    case 4:
      var value = msg.getNumbermMap();
      reader.readMessage(value, function(message, reader) {
        jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readInt32, jspb.BinaryReader.prototype.readInt32, null, 0, 0);
         });
      break;
    case 5:
      var value = /** @type {string} */ (reader.readString());
      msg.setStringv(value);
      break;
    case 6:
      var value = /** @type {string} */ (reader.readString());
      msg.addStringg(value);
      break;
    case 7:
      var value = msg.getStringmMap();
      reader.readMessage(value, function(message, reader) {
        jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readString, null, "", "");
         });
      break;
    case 8:
      var value = /** @type {number} */ (reader.readInt32());
      msg.setEnumv(value);
      break;
    case 9:
      var values = /** @type {!Array<number>} */ (reader.isDelimited() ? reader.readPackedInt32() : [reader.readInt32()]);
      for (var i = 0; i < values.length; i++) {
        msg.addEnumg(values[i]);
      }
      break;
    case 10:
      var value = msg.getEnumm1Map();
      reader.readMessage(value, function(message, reader) {
        jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readInt32, jspb.BinaryReader.prototype.readInt32, null, 0, 0);
         });
      break;
    case 11:
      var value = msg.getEnumm2Map();
      reader.readMessage(value, function(message, reader) {
        jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readInt32, null, "", 0);
         });
      break;
    case 12:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setBooleanv(value);
      break;
    case 13:
      var values = /** @type {!Array<boolean>} */ (reader.isDelimited() ? reader.readPackedBool() : [reader.readBool()]);
      for (var i = 0; i < values.length; i++) {
        msg.addBooleang(values[i]);
      }
      break;
    case 14:
      var value = msg.getBooleanm1Map();
      reader.readMessage(value, function(message, reader) {
        jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readInt32, jspb.BinaryReader.prototype.readBool, null, 0, false);
         });
      break;
    case 15:
      var value = msg.getBooleanm2Map();
      reader.readMessage(value, function(message, reader) {
        jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readBool, null, "", false);
         });
      break;
    case 16:
      var value = /** @type {!Uint8Array} */ (reader.readBytes());
      msg.setUint8arrayv(value);
      break;
    case 17:
      var value = /** @type {!Uint8Array} */ (reader.readBytes());
      msg.addUint8arrayg(value);
      break;
    case 18:
      var value = msg.getUint8arraym1Map();
      reader.readMessage(value, function(message, reader) {
        jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readInt32, jspb.BinaryReader.prototype.readBytes, null, 0, "");
         });
      break;
    case 19:
      var value = msg.getUint8arraym2Map();
      reader.readMessage(value, function(message, reader) {
        jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readBytes, null, "", "");
         });
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.resources.TypescriptTest1.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.resources.TypescriptTest1.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.resources.TypescriptTest1} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.resources.TypescriptTest1.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getNumberv();
  if (f !== 0) {
    writer.writeInt32(
      2,
      f
    );
  }
  f = message.getNumbergList();
  if (f.length > 0) {
    writer.writePackedInt32(
      3,
      f
    );
  }
  f = message.getNumbermMap(true);
  if (f && f.getLength() > 0) {
    f.serializeBinary(4, writer, jspb.BinaryWriter.prototype.writeInt32, jspb.BinaryWriter.prototype.writeInt32);
  }
  f = message.getStringv();
  if (f.length > 0) {
    writer.writeString(
      5,
      f
    );
  }
  f = message.getStringgList();
  if (f.length > 0) {
    writer.writeRepeatedString(
      6,
      f
    );
  }
  f = message.getStringmMap(true);
  if (f && f.getLength() > 0) {
    f.serializeBinary(7, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeString);
  }
  f = message.getEnumv();
  if (f !== 0) {
    writer.writeInt32(
      8,
      f
    );
  }
  f = message.getEnumgList();
  if (f.length > 0) {
    writer.writePackedInt32(
      9,
      f
    );
  }
  f = message.getEnumm1Map(true);
  if (f && f.getLength() > 0) {
    f.serializeBinary(10, writer, jspb.BinaryWriter.prototype.writeInt32, jspb.BinaryWriter.prototype.writeInt32);
  }
  f = message.getEnumm2Map(true);
  if (f && f.getLength() > 0) {
    f.serializeBinary(11, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeInt32);
  }
  f = message.getBooleanv();
  if (f) {
    writer.writeBool(
      12,
      f
    );
  }
  f = message.getBooleangList();
  if (f.length > 0) {
    writer.writePackedBool(
      13,
      f
    );
  }
  f = message.getBooleanm1Map(true);
  if (f && f.getLength() > 0) {
    f.serializeBinary(14, writer, jspb.BinaryWriter.prototype.writeInt32, jspb.BinaryWriter.prototype.writeBool);
  }
  f = message.getBooleanm2Map(true);
  if (f && f.getLength() > 0) {
    f.serializeBinary(15, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeBool);
  }
  f = message.getUint8arrayv_asU8();
  if (f.length > 0) {
    writer.writeBytes(
      16,
      f
    );
  }
  f = message.getUint8arraygList_asU8();
  if (f.length > 0) {
    writer.writeRepeatedBytes(
      17,
      f
    );
  }
  f = message.getUint8arraym1Map(true);
  if (f && f.getLength() > 0) {
    f.serializeBinary(18, writer, jspb.BinaryWriter.prototype.writeInt32, jspb.BinaryWriter.prototype.writeBytes);
  }
  f = message.getUint8arraym2Map(true);
  if (f && f.getLength() > 0) {
    f.serializeBinary(19, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeBytes);
  }
};


/**
 * optional int32 numberV = 2;
 * @return {number}
 */
proto.resources.TypescriptTest1.prototype.getNumberv = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
};


/**
 * @param {number} value
 * @return {!proto.resources.TypescriptTest1} returns this
 */
proto.resources.TypescriptTest1.prototype.setNumberv = function(value) {
  return jspb.Message.setProto3IntField(this, 2, value);
};


/**
 * repeated int32 numberG = 3;
 * @return {!Array<number>}
 */
proto.resources.TypescriptTest1.prototype.getNumbergList = function() {
  return /** @type {!Array<number>} */ (jspb.Message.getRepeatedField(this, 3));
};


/**
 * @param {!Array<number>} value
 * @return {!proto.resources.TypescriptTest1} returns this
 */
proto.resources.TypescriptTest1.prototype.setNumbergList = function(value) {
  return jspb.Message.setField(this, 3, value || []);
};


/**
 * @param {number} value
 * @param {number=} opt_index
 * @return {!proto.resources.TypescriptTest1} returns this
 */
proto.resources.TypescriptTest1.prototype.addNumberg = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 3, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.resources.TypescriptTest1} returns this
 */
proto.resources.TypescriptTest1.prototype.clearNumbergList = function() {
  return this.setNumbergList([]);
};


/**
 * map<int32, int32> numberM = 4;
 * @param {boolean=} opt_noLazyCreate Do not create the map if
 * empty, instead returning `undefined`
 * @return {!jspb.Map<number,number>}
 */
proto.resources.TypescriptTest1.prototype.getNumbermMap = function(opt_noLazyCreate) {
  return /** @type {!jspb.Map<number,number>} */ (
      jspb.Message.getMapField(this, 4, opt_noLazyCreate,
      null));
};


/**
 * Clears values from the map. The map will be non-null.
 * @return {!proto.resources.TypescriptTest1} returns this
 */
proto.resources.TypescriptTest1.prototype.clearNumbermMap = function() {
  this.getNumbermMap().clear();
  return this;};


/**
 * optional string stringV = 5;
 * @return {string}
 */
proto.resources.TypescriptTest1.prototype.getStringv = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, ""));
};


/**
 * @param {string} value
 * @return {!proto.resources.TypescriptTest1} returns this
 */
proto.resources.TypescriptTest1.prototype.setStringv = function(value) {
  return jspb.Message.setProto3StringField(this, 5, value);
};


/**
 * repeated string stringG = 6;
 * @return {!Array<string>}
 */
proto.resources.TypescriptTest1.prototype.getStringgList = function() {
  return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 6));
};


/**
 * @param {!Array<string>} value
 * @return {!proto.resources.TypescriptTest1} returns this
 */
proto.resources.TypescriptTest1.prototype.setStringgList = function(value) {
  return jspb.Message.setField(this, 6, value || []);
};


/**
 * @param {string} value
 * @param {number=} opt_index
 * @return {!proto.resources.TypescriptTest1} returns this
 */
proto.resources.TypescriptTest1.prototype.addStringg = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 6, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.resources.TypescriptTest1} returns this
 */
proto.resources.TypescriptTest1.prototype.clearStringgList = function() {
  return this.setStringgList([]);
};


/**
 * map<string, string> stringM = 7;
 * @param {boolean=} opt_noLazyCreate Do not create the map if
 * empty, instead returning `undefined`
 * @return {!jspb.Map<string,string>}
 */
proto.resources.TypescriptTest1.prototype.getStringmMap = function(opt_noLazyCreate) {
  return /** @type {!jspb.Map<string,string>} */ (
      jspb.Message.getMapField(this, 7, opt_noLazyCreate,
      null));
};


/**
 * Clears values from the map. The map will be non-null.
 * @return {!proto.resources.TypescriptTest1} returns this
 */
proto.resources.TypescriptTest1.prototype.clearStringmMap = function() {
  this.getStringmMap().clear();
  return this;};


/**
 * optional int32 enumV = 8;
 * @return {number}
 */
proto.resources.TypescriptTest1.prototype.getEnumv = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 8, 0));
};


/**
 * @param {number} value
 * @return {!proto.resources.TypescriptTest1} returns this
 */
proto.resources.TypescriptTest1.prototype.setEnumv = function(value) {
  return jspb.Message.setProto3IntField(this, 8, value);
};


/**
 * repeated int32 enumG = 9;
 * @return {!Array<number>}
 */
proto.resources.TypescriptTest1.prototype.getEnumgList = function() {
  return /** @type {!Array<number>} */ (jspb.Message.getRepeatedField(this, 9));
};


/**
 * @param {!Array<number>} value
 * @return {!proto.resources.TypescriptTest1} returns this
 */
proto.resources.TypescriptTest1.prototype.setEnumgList = function(value) {
  return jspb.Message.setField(this, 9, value || []);
};


/**
 * @param {number} value
 * @param {number=} opt_index
 * @return {!proto.resources.TypescriptTest1} returns this
 */
proto.resources.TypescriptTest1.prototype.addEnumg = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 9, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.resources.TypescriptTest1} returns this
 */
proto.resources.TypescriptTest1.prototype.clearEnumgList = function() {
  return this.setEnumgList([]);
};


/**
 * map<int32, int32> enumM1 = 10;
 * @param {boolean=} opt_noLazyCreate Do not create the map if
 * empty, instead returning `undefined`
 * @return {!jspb.Map<number,number>}
 */
proto.resources.TypescriptTest1.prototype.getEnumm1Map = function(opt_noLazyCreate) {
  return /** @type {!jspb.Map<number,number>} */ (
      jspb.Message.getMapField(this, 10, opt_noLazyCreate,
      null));
};


/**
 * Clears values from the map. The map will be non-null.
 * @return {!proto.resources.TypescriptTest1} returns this
 */
proto.resources.TypescriptTest1.prototype.clearEnumm1Map = function() {
  this.getEnumm1Map().clear();
  return this;};


/**
 * map<string, int32> enumM2 = 11;
 * @param {boolean=} opt_noLazyCreate Do not create the map if
 * empty, instead returning `undefined`
 * @return {!jspb.Map<string,number>}
 */
proto.resources.TypescriptTest1.prototype.getEnumm2Map = function(opt_noLazyCreate) {
  return /** @type {!jspb.Map<string,number>} */ (
      jspb.Message.getMapField(this, 11, opt_noLazyCreate,
      null));
};


/**
 * Clears values from the map. The map will be non-null.
 * @return {!proto.resources.TypescriptTest1} returns this
 */
proto.resources.TypescriptTest1.prototype.clearEnumm2Map = function() {
  this.getEnumm2Map().clear();
  return this;};


/**
 * optional bool booleanV = 12;
 * @return {boolean}
 */
proto.resources.TypescriptTest1.prototype.getBooleanv = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 12, false));
};


/**
 * @param {boolean} value
 * @return {!proto.resources.TypescriptTest1} returns this
 */
proto.resources.TypescriptTest1.prototype.setBooleanv = function(value) {
  return jspb.Message.setProto3BooleanField(this, 12, value);
};


/**
 * repeated bool booleanG = 13;
 * @return {!Array<boolean>}
 */
proto.resources.TypescriptTest1.prototype.getBooleangList = function() {
  return /** @type {!Array<boolean>} */ (jspb.Message.getRepeatedBooleanField(this, 13));
};


/**
 * @param {!Array<boolean>} value
 * @return {!proto.resources.TypescriptTest1} returns this
 */
proto.resources.TypescriptTest1.prototype.setBooleangList = function(value) {
  return jspb.Message.setField(this, 13, value || []);
};


/**
 * @param {boolean} value
 * @param {number=} opt_index
 * @return {!proto.resources.TypescriptTest1} returns this
 */
proto.resources.TypescriptTest1.prototype.addBooleang = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 13, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.resources.TypescriptTest1} returns this
 */
proto.resources.TypescriptTest1.prototype.clearBooleangList = function() {
  return this.setBooleangList([]);
};


/**
 * map<int32, bool> booleanM1 = 14;
 * @param {boolean=} opt_noLazyCreate Do not create the map if
 * empty, instead returning `undefined`
 * @return {!jspb.Map<number,boolean>}
 */
proto.resources.TypescriptTest1.prototype.getBooleanm1Map = function(opt_noLazyCreate) {
  return /** @type {!jspb.Map<number,boolean>} */ (
      jspb.Message.getMapField(this, 14, opt_noLazyCreate,
      null));
};


/**
 * Clears values from the map. The map will be non-null.
 * @return {!proto.resources.TypescriptTest1} returns this
 */
proto.resources.TypescriptTest1.prototype.clearBooleanm1Map = function() {
  this.getBooleanm1Map().clear();
  return this;};


/**
 * map<string, bool> booleanM2 = 15;
 * @param {boolean=} opt_noLazyCreate Do not create the map if
 * empty, instead returning `undefined`
 * @return {!jspb.Map<string,boolean>}
 */
proto.resources.TypescriptTest1.prototype.getBooleanm2Map = function(opt_noLazyCreate) {
  return /** @type {!jspb.Map<string,boolean>} */ (
      jspb.Message.getMapField(this, 15, opt_noLazyCreate,
      null));
};


/**
 * Clears values from the map. The map will be non-null.
 * @return {!proto.resources.TypescriptTest1} returns this
 */
proto.resources.TypescriptTest1.prototype.clearBooleanm2Map = function() {
  this.getBooleanm2Map().clear();
  return this;};


/**
 * optional bytes uint8arrayV = 16;
 * @return {!(string|Uint8Array)}
 */
proto.resources.TypescriptTest1.prototype.getUint8arrayv = function() {
  return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 16, ""));
};


/**
 * optional bytes uint8arrayV = 16;
 * This is a type-conversion wrapper around `getUint8arrayv()`
 * @return {string}
 */
proto.resources.TypescriptTest1.prototype.getUint8arrayv_asB64 = function() {
  return /** @type {string} */ (jspb.Message.bytesAsB64(
      this.getUint8arrayv()));
};


/**
 * optional bytes uint8arrayV = 16;
 * Note that Uint8Array is not supported on all browsers.
 * @see http://caniuse.com/Uint8Array
 * This is a type-conversion wrapper around `getUint8arrayv()`
 * @return {!Uint8Array}
 */
proto.resources.TypescriptTest1.prototype.getUint8arrayv_asU8 = function() {
  return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(
      this.getUint8arrayv()));
};


/**
 * @param {!(string|Uint8Array)} value
 * @return {!proto.resources.TypescriptTest1} returns this
 */
proto.resources.TypescriptTest1.prototype.setUint8arrayv = function(value) {
  return jspb.Message.setProto3BytesField(this, 16, value);
};


/**
 * repeated bytes uint8arrayG = 17;
 * @return {!(Array<!Uint8Array>|Array<string>)}
 */
proto.resources.TypescriptTest1.prototype.getUint8arraygList = function() {
  return /** @type {!(Array<!Uint8Array>|Array<string>)} */ (jspb.Message.getRepeatedField(this, 17));
};


/**
 * repeated bytes uint8arrayG = 17;
 * This is a type-conversion wrapper around `getUint8arraygList()`
 * @return {!Array<string>}
 */
proto.resources.TypescriptTest1.prototype.getUint8arraygList_asB64 = function() {
  return /** @type {!Array<string>} */ (jspb.Message.bytesListAsB64(
      this.getUint8arraygList()));
};


/**
 * repeated bytes uint8arrayG = 17;
 * Note that Uint8Array is not supported on all browsers.
 * @see http://caniuse.com/Uint8Array
 * This is a type-conversion wrapper around `getUint8arraygList()`
 * @return {!Array<!Uint8Array>}
 */
proto.resources.TypescriptTest1.prototype.getUint8arraygList_asU8 = function() {
  return /** @type {!Array<!Uint8Array>} */ (jspb.Message.bytesListAsU8(
      this.getUint8arraygList()));
};


/**
 * @param {!(Array<!Uint8Array>|Array<string>)} value
 * @return {!proto.resources.TypescriptTest1} returns this
 */
proto.resources.TypescriptTest1.prototype.setUint8arraygList = function(value) {
  return jspb.Message.setField(this, 17, value || []);
};


/**
 * @param {!(string|Uint8Array)} value
 * @param {number=} opt_index
 * @return {!proto.resources.TypescriptTest1} returns this
 */
proto.resources.TypescriptTest1.prototype.addUint8arrayg = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 17, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.resources.TypescriptTest1} returns this
 */
proto.resources.TypescriptTest1.prototype.clearUint8arraygList = function() {
  return this.setUint8arraygList([]);
};


/**
 * map<int32, bytes> uint8arrayM1 = 18;
 * @param {boolean=} opt_noLazyCreate Do not create the map if
 * empty, instead returning `undefined`
 * @return {!jspb.Map<number,!(string|Uint8Array)>}
 */
proto.resources.TypescriptTest1.prototype.getUint8arraym1Map = function(opt_noLazyCreate) {
  return /** @type {!jspb.Map<number,!(string|Uint8Array)>} */ (
      jspb.Message.getMapField(this, 18, opt_noLazyCreate,
      null));
};


/**
 * Clears values from the map. The map will be non-null.
 * @return {!proto.resources.TypescriptTest1} returns this
 */
proto.resources.TypescriptTest1.prototype.clearUint8arraym1Map = function() {
  this.getUint8arraym1Map().clear();
  return this;};


/**
 * map<string, bytes> uint8arrayM2 = 19;
 * @param {boolean=} opt_noLazyCreate Do not create the map if
 * empty, instead returning `undefined`
 * @return {!jspb.Map<string,!(string|Uint8Array)>}
 */
proto.resources.TypescriptTest1.prototype.getUint8arraym2Map = function(opt_noLazyCreate) {
  return /** @type {!jspb.Map<string,!(string|Uint8Array)>} */ (
      jspb.Message.getMapField(this, 19, opt_noLazyCreate,
      null));
};


/**
 * Clears values from the map. The map will be non-null.
 * @return {!proto.resources.TypescriptTest1} returns this
 */
proto.resources.TypescriptTest1.prototype.clearUint8arraym2Map = function() {
  this.getUint8arraym2Map().clear();
  return this;};



/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.resources.TypescriptTest2.repeatedFields_ = [3];



if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.resources.TypescriptTest2.prototype.toObject = function(opt_includeInstance) {
  return proto.resources.TypescriptTest2.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.resources.TypescriptTest2} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.resources.TypescriptTest2.toObject = function(includeInstance, msg) {
  var f, obj = {
    test1v: (f = msg.getTest1v()) && proto.resources.TypescriptTest1.toObject(includeInstance, f),
    test1gList: jspb.Message.toObjectList(msg.getTest1gList(),
    proto.resources.TypescriptTest1.toObject, includeInstance),
    test1m1Map: (f = msg.getTest1m1Map()) ? f.toObject(includeInstance, proto.resources.TypescriptTest1.toObject) : [],
    test1m2Map: (f = msg.getTest1m2Map()) ? f.toObject(includeInstance, proto.resources.TypescriptTest1.toObject) : []
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.resources.TypescriptTest2}
 */
proto.resources.TypescriptTest2.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.resources.TypescriptTest2;
  return proto.resources.TypescriptTest2.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.resources.TypescriptTest2} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.resources.TypescriptTest2}
 */
proto.resources.TypescriptTest2.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 2:
      var value = new proto.resources.TypescriptTest1;
      reader.readMessage(value,proto.resources.TypescriptTest1.deserializeBinaryFromReader);
      msg.setTest1v(value);
      break;
    case 3:
      var value = new proto.resources.TypescriptTest1;
      reader.readMessage(value,proto.resources.TypescriptTest1.deserializeBinaryFromReader);
      msg.addTest1g(value);
      break;
    case 4:
      var value = msg.getTest1m1Map();
      reader.readMessage(value, function(message, reader) {
        jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readInt32, jspb.BinaryReader.prototype.readMessage, proto.resources.TypescriptTest1.deserializeBinaryFromReader, 0, new proto.resources.TypescriptTest1());
         });
      break;
    case 5:
      var value = msg.getTest1m2Map();
      reader.readMessage(value, function(message, reader) {
        jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.resources.TypescriptTest1.deserializeBinaryFromReader, "", new proto.resources.TypescriptTest1());
         });
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.resources.TypescriptTest2.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.resources.TypescriptTest2.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.resources.TypescriptTest2} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.resources.TypescriptTest2.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getTest1v();
  if (f != null) {
    writer.writeMessage(
      2,
      f,
      proto.resources.TypescriptTest1.serializeBinaryToWriter
    );
  }
  f = message.getTest1gList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      3,
      f,
      proto.resources.TypescriptTest1.serializeBinaryToWriter
    );
  }
  f = message.getTest1m1Map(true);
  if (f && f.getLength() > 0) {
    f.serializeBinary(4, writer, jspb.BinaryWriter.prototype.writeInt32, jspb.BinaryWriter.prototype.writeMessage, proto.resources.TypescriptTest1.serializeBinaryToWriter);
  }
  f = message.getTest1m2Map(true);
  if (f && f.getLength() > 0) {
    f.serializeBinary(5, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.resources.TypescriptTest1.serializeBinaryToWriter);
  }
};


/**
 * optional TypescriptTest1 test1V = 2;
 * @return {?proto.resources.TypescriptTest1}
 */
proto.resources.TypescriptTest2.prototype.getTest1v = function() {
  return /** @type{?proto.resources.TypescriptTest1} */ (
    jspb.Message.getWrapperField(this, proto.resources.TypescriptTest1, 2));
};


/**
 * @param {?proto.resources.TypescriptTest1|undefined} value
 * @return {!proto.resources.TypescriptTest2} returns this
*/
proto.resources.TypescriptTest2.prototype.setTest1v = function(value) {
  return jspb.Message.setWrapperField(this, 2, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.resources.TypescriptTest2} returns this
 */
proto.resources.TypescriptTest2.prototype.clearTest1v = function() {
  return this.setTest1v(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.resources.TypescriptTest2.prototype.hasTest1v = function() {
  return jspb.Message.getField(this, 2) != null;
};


/**
 * repeated TypescriptTest1 test1G = 3;
 * @return {!Array<!proto.resources.TypescriptTest1>}
 */
proto.resources.TypescriptTest2.prototype.getTest1gList = function() {
  return /** @type{!Array<!proto.resources.TypescriptTest1>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.resources.TypescriptTest1, 3));
};


/**
 * @param {!Array<!proto.resources.TypescriptTest1>} value
 * @return {!proto.resources.TypescriptTest2} returns this
*/
proto.resources.TypescriptTest2.prototype.setTest1gList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 3, value);
};


/**
 * @param {!proto.resources.TypescriptTest1=} opt_value
 * @param {number=} opt_index
 * @return {!proto.resources.TypescriptTest1}
 */
proto.resources.TypescriptTest2.prototype.addTest1g = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.resources.TypescriptTest1, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.resources.TypescriptTest2} returns this
 */
proto.resources.TypescriptTest2.prototype.clearTest1gList = function() {
  return this.setTest1gList([]);
};


/**
 * map<int32, TypescriptTest1> test1M1 = 4;
 * @param {boolean=} opt_noLazyCreate Do not create the map if
 * empty, instead returning `undefined`
 * @return {!jspb.Map<number,!proto.resources.TypescriptTest1>}
 */
proto.resources.TypescriptTest2.prototype.getTest1m1Map = function(opt_noLazyCreate) {
  return /** @type {!jspb.Map<number,!proto.resources.TypescriptTest1>} */ (
      jspb.Message.getMapField(this, 4, opt_noLazyCreate,
      proto.resources.TypescriptTest1));
};


/**
 * Clears values from the map. The map will be non-null.
 * @return {!proto.resources.TypescriptTest2} returns this
 */
proto.resources.TypescriptTest2.prototype.clearTest1m1Map = function() {
  this.getTest1m1Map().clear();
  return this;};


/**
 * map<string, TypescriptTest1> test1M2 = 5;
 * @param {boolean=} opt_noLazyCreate Do not create the map if
 * empty, instead returning `undefined`
 * @return {!jspb.Map<string,!proto.resources.TypescriptTest1>}
 */
proto.resources.TypescriptTest2.prototype.getTest1m2Map = function(opt_noLazyCreate) {
  return /** @type {!jspb.Map<string,!proto.resources.TypescriptTest1>} */ (
      jspb.Message.getMapField(this, 5, opt_noLazyCreate,
      proto.resources.TypescriptTest1));
};


/**
 * Clears values from the map. The map will be non-null.
 * @return {!proto.resources.TypescriptTest2} returns this
 */
proto.resources.TypescriptTest2.prototype.clearTest1m2Map = function() {
  this.getTest1m2Map().clear();
  return this;};



/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.resources.TypescriptTest3.repeatedFields_ = [3];



if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.resources.TypescriptTest3.prototype.toObject = function(opt_includeInstance) {
  return proto.resources.TypescriptTest3.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.resources.TypescriptTest3} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.resources.TypescriptTest3.toObject = function(includeInstance, msg) {
  var f, obj = {
    pb_super: (f = msg.getSuper()) && proto.resources.TypescriptTest2.toObject(includeInstance, f),
    test2v: (f = msg.getTest2v()) && proto.resources.TypescriptTest2.toObject(includeInstance, f),
    test2gList: jspb.Message.toObjectList(msg.getTest2gList(),
    proto.resources.TypescriptTest2.toObject, includeInstance),
    test2m1Map: (f = msg.getTest2m1Map()) ? f.toObject(includeInstance, proto.resources.TypescriptTest2.toObject) : [],
    test2m2Map: (f = msg.getTest2m2Map()) ? f.toObject(includeInstance, proto.resources.TypescriptTest2.toObject) : []
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.resources.TypescriptTest3}
 */
proto.resources.TypescriptTest3.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.resources.TypescriptTest3;
  return proto.resources.TypescriptTest3.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.resources.TypescriptTest3} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.resources.TypescriptTest3}
 */
proto.resources.TypescriptTest3.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = new proto.resources.TypescriptTest2;
      reader.readMessage(value,proto.resources.TypescriptTest2.deserializeBinaryFromReader);
      msg.setSuper(value);
      break;
    case 2:
      var value = new proto.resources.TypescriptTest2;
      reader.readMessage(value,proto.resources.TypescriptTest2.deserializeBinaryFromReader);
      msg.setTest2v(value);
      break;
    case 3:
      var value = new proto.resources.TypescriptTest2;
      reader.readMessage(value,proto.resources.TypescriptTest2.deserializeBinaryFromReader);
      msg.addTest2g(value);
      break;
    case 4:
      var value = msg.getTest2m1Map();
      reader.readMessage(value, function(message, reader) {
        jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readInt32, jspb.BinaryReader.prototype.readMessage, proto.resources.TypescriptTest2.deserializeBinaryFromReader, 0, new proto.resources.TypescriptTest2());
         });
      break;
    case 5:
      var value = msg.getTest2m2Map();
      reader.readMessage(value, function(message, reader) {
        jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.resources.TypescriptTest2.deserializeBinaryFromReader, "", new proto.resources.TypescriptTest2());
         });
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.resources.TypescriptTest3.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.resources.TypescriptTest3.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.resources.TypescriptTest3} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.resources.TypescriptTest3.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getSuper();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      proto.resources.TypescriptTest2.serializeBinaryToWriter
    );
  }
  f = message.getTest2v();
  if (f != null) {
    writer.writeMessage(
      2,
      f,
      proto.resources.TypescriptTest2.serializeBinaryToWriter
    );
  }
  f = message.getTest2gList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      3,
      f,
      proto.resources.TypescriptTest2.serializeBinaryToWriter
    );
  }
  f = message.getTest2m1Map(true);
  if (f && f.getLength() > 0) {
    f.serializeBinary(4, writer, jspb.BinaryWriter.prototype.writeInt32, jspb.BinaryWriter.prototype.writeMessage, proto.resources.TypescriptTest2.serializeBinaryToWriter);
  }
  f = message.getTest2m2Map(true);
  if (f && f.getLength() > 0) {
    f.serializeBinary(5, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.resources.TypescriptTest2.serializeBinaryToWriter);
  }
};


/**
 * optional TypescriptTest2 __super = 1;
 * @return {?proto.resources.TypescriptTest2}
 */
proto.resources.TypescriptTest3.prototype.getSuper = function() {
  return /** @type{?proto.resources.TypescriptTest2} */ (
    jspb.Message.getWrapperField(this, proto.resources.TypescriptTest2, 1));
};


/**
 * @param {?proto.resources.TypescriptTest2|undefined} value
 * @return {!proto.resources.TypescriptTest3} returns this
*/
proto.resources.TypescriptTest3.prototype.setSuper = function(value) {
  return jspb.Message.setWrapperField(this, 1, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.resources.TypescriptTest3} returns this
 */
proto.resources.TypescriptTest3.prototype.clearSuper = function() {
  return this.setSuper(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.resources.TypescriptTest3.prototype.hasSuper = function() {
  return jspb.Message.getField(this, 1) != null;
};


/**
 * optional TypescriptTest2 test2V = 2;
 * @return {?proto.resources.TypescriptTest2}
 */
proto.resources.TypescriptTest3.prototype.getTest2v = function() {
  return /** @type{?proto.resources.TypescriptTest2} */ (
    jspb.Message.getWrapperField(this, proto.resources.TypescriptTest2, 2));
};


/**
 * @param {?proto.resources.TypescriptTest2|undefined} value
 * @return {!proto.resources.TypescriptTest3} returns this
*/
proto.resources.TypescriptTest3.prototype.setTest2v = function(value) {
  return jspb.Message.setWrapperField(this, 2, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.resources.TypescriptTest3} returns this
 */
proto.resources.TypescriptTest3.prototype.clearTest2v = function() {
  return this.setTest2v(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.resources.TypescriptTest3.prototype.hasTest2v = function() {
  return jspb.Message.getField(this, 2) != null;
};


/**
 * repeated TypescriptTest2 test2G = 3;
 * @return {!Array<!proto.resources.TypescriptTest2>}
 */
proto.resources.TypescriptTest3.prototype.getTest2gList = function() {
  return /** @type{!Array<!proto.resources.TypescriptTest2>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.resources.TypescriptTest2, 3));
};


/**
 * @param {!Array<!proto.resources.TypescriptTest2>} value
 * @return {!proto.resources.TypescriptTest3} returns this
*/
proto.resources.TypescriptTest3.prototype.setTest2gList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 3, value);
};


/**
 * @param {!proto.resources.TypescriptTest2=} opt_value
 * @param {number=} opt_index
 * @return {!proto.resources.TypescriptTest2}
 */
proto.resources.TypescriptTest3.prototype.addTest2g = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.resources.TypescriptTest2, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.resources.TypescriptTest3} returns this
 */
proto.resources.TypescriptTest3.prototype.clearTest2gList = function() {
  return this.setTest2gList([]);
};


/**
 * map<int32, TypescriptTest2> test2M1 = 4;
 * @param {boolean=} opt_noLazyCreate Do not create the map if
 * empty, instead returning `undefined`
 * @return {!jspb.Map<number,!proto.resources.TypescriptTest2>}
 */
proto.resources.TypescriptTest3.prototype.getTest2m1Map = function(opt_noLazyCreate) {
  return /** @type {!jspb.Map<number,!proto.resources.TypescriptTest2>} */ (
      jspb.Message.getMapField(this, 4, opt_noLazyCreate,
      proto.resources.TypescriptTest2));
};


/**
 * Clears values from the map. The map will be non-null.
 * @return {!proto.resources.TypescriptTest3} returns this
 */
proto.resources.TypescriptTest3.prototype.clearTest2m1Map = function() {
  this.getTest2m1Map().clear();
  return this;};


/**
 * map<string, TypescriptTest2> test2M2 = 5;
 * @param {boolean=} opt_noLazyCreate Do not create the map if
 * empty, instead returning `undefined`
 * @return {!jspb.Map<string,!proto.resources.TypescriptTest2>}
 */
proto.resources.TypescriptTest3.prototype.getTest2m2Map = function(opt_noLazyCreate) {
  return /** @type {!jspb.Map<string,!proto.resources.TypescriptTest2>} */ (
      jspb.Message.getMapField(this, 5, opt_noLazyCreate,
      proto.resources.TypescriptTest2));
};


/**
 * Clears values from the map. The map will be non-null.
 * @return {!proto.resources.TypescriptTest3} returns this
 */
proto.resources.TypescriptTest3.prototype.clearTest2m2Map = function() {
  this.getTest2m2Map().clear();
  return this;};





if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.resources.ProtoBuffTest.prototype.toObject = function(opt_includeInstance) {
  return proto.resources.ProtoBuffTest.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.resources.ProtoBuffTest} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.resources.ProtoBuffTest.toObject = function(includeInstance, msg) {
  var f, obj = {
    floatv: jspb.Message.getFloatingPointFieldWithDefault(msg, 2, 0.0),
    doublev: jspb.Message.getFloatingPointFieldWithDefault(msg, 3, 0.0),
    int32v: jspb.Message.getFieldWithDefault(msg, 4, 0),
    boolv: jspb.Message.getBooleanFieldWithDefault(msg, 5, false),
    bytesv: msg.getBytesv_asB64(),
    mapv1Map: (f = msg.getMapv1Map()) ? f.toObject(includeInstance, undefined) : [],
    mapv2Map: (f = msg.getMapv2Map()) ? f.toObject(includeInstance, undefined) : []
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.resources.ProtoBuffTest}
 */
proto.resources.ProtoBuffTest.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.resources.ProtoBuffTest;
  return proto.resources.ProtoBuffTest.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.resources.ProtoBuffTest} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.resources.ProtoBuffTest}
 */
proto.resources.ProtoBuffTest.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 2:
      var value = /** @type {number} */ (reader.readFloat());
      msg.setFloatv(value);
      break;
    case 3:
      var value = /** @type {number} */ (reader.readDouble());
      msg.setDoublev(value);
      break;
    case 4:
      var value = /** @type {number} */ (reader.readInt32());
      msg.setInt32v(value);
      break;
    case 5:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setBoolv(value);
      break;
    case 6:
      var value = /** @type {!Uint8Array} */ (reader.readBytes());
      msg.setBytesv(value);
      break;
    case 7:
      var value = msg.getMapv1Map();
      reader.readMessage(value, function(message, reader) {
        jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readBool, null, "", false);
         });
      break;
    case 8:
      var value = msg.getMapv2Map();
      reader.readMessage(value, function(message, reader) {
        jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readInt32, jspb.BinaryReader.prototype.readBool, null, 0, false);
         });
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.resources.ProtoBuffTest.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.resources.ProtoBuffTest.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.resources.ProtoBuffTest} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.resources.ProtoBuffTest.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getFloatv();
  if (f !== 0.0) {
    writer.writeFloat(
      2,
      f
    );
  }
  f = message.getDoublev();
  if (f !== 0.0) {
    writer.writeDouble(
      3,
      f
    );
  }
  f = message.getInt32v();
  if (f !== 0) {
    writer.writeInt32(
      4,
      f
    );
  }
  f = message.getBoolv();
  if (f) {
    writer.writeBool(
      5,
      f
    );
  }
  f = message.getBytesv_asU8();
  if (f.length > 0) {
    writer.writeBytes(
      6,
      f
    );
  }
  f = message.getMapv1Map(true);
  if (f && f.getLength() > 0) {
    f.serializeBinary(7, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeBool);
  }
  f = message.getMapv2Map(true);
  if (f && f.getLength() > 0) {
    f.serializeBinary(8, writer, jspb.BinaryWriter.prototype.writeInt32, jspb.BinaryWriter.prototype.writeBool);
  }
};


/**
 * optional float floatV = 2;
 * @return {number}
 */
proto.resources.ProtoBuffTest.prototype.getFloatv = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 2, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.resources.ProtoBuffTest} returns this
 */
proto.resources.ProtoBuffTest.prototype.setFloatv = function(value) {
  return jspb.Message.setProto3FloatField(this, 2, value);
};


/**
 * optional double doubleV = 3;
 * @return {number}
 */
proto.resources.ProtoBuffTest.prototype.getDoublev = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 3, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.resources.ProtoBuffTest} returns this
 */
proto.resources.ProtoBuffTest.prototype.setDoublev = function(value) {
  return jspb.Message.setProto3FloatField(this, 3, value);
};


/**
 * optional int32 int32V = 4;
 * @return {number}
 */
proto.resources.ProtoBuffTest.prototype.getInt32v = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));
};


/**
 * @param {number} value
 * @return {!proto.resources.ProtoBuffTest} returns this
 */
proto.resources.ProtoBuffTest.prototype.setInt32v = function(value) {
  return jspb.Message.setProto3IntField(this, 4, value);
};


/**
 * optional bool boolV = 5;
 * @return {boolean}
 */
proto.resources.ProtoBuffTest.prototype.getBoolv = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 5, false));
};


/**
 * @param {boolean} value
 * @return {!proto.resources.ProtoBuffTest} returns this
 */
proto.resources.ProtoBuffTest.prototype.setBoolv = function(value) {
  return jspb.Message.setProto3BooleanField(this, 5, value);
};


/**
 * optional bytes bytesV = 6;
 * @return {!(string|Uint8Array)}
 */
proto.resources.ProtoBuffTest.prototype.getBytesv = function() {
  return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 6, ""));
};


/**
 * optional bytes bytesV = 6;
 * This is a type-conversion wrapper around `getBytesv()`
 * @return {string}
 */
proto.resources.ProtoBuffTest.prototype.getBytesv_asB64 = function() {
  return /** @type {string} */ (jspb.Message.bytesAsB64(
      this.getBytesv()));
};


/**
 * optional bytes bytesV = 6;
 * Note that Uint8Array is not supported on all browsers.
 * @see http://caniuse.com/Uint8Array
 * This is a type-conversion wrapper around `getBytesv()`
 * @return {!Uint8Array}
 */
proto.resources.ProtoBuffTest.prototype.getBytesv_asU8 = function() {
  return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(
      this.getBytesv()));
};


/**
 * @param {!(string|Uint8Array)} value
 * @return {!proto.resources.ProtoBuffTest} returns this
 */
proto.resources.ProtoBuffTest.prototype.setBytesv = function(value) {
  return jspb.Message.setProto3BytesField(this, 6, value);
};


/**
 * map<string, bool> mapV1 = 7;
 * @param {boolean=} opt_noLazyCreate Do not create the map if
 * empty, instead returning `undefined`
 * @return {!jspb.Map<string,boolean>}
 */
proto.resources.ProtoBuffTest.prototype.getMapv1Map = function(opt_noLazyCreate) {
  return /** @type {!jspb.Map<string,boolean>} */ (
      jspb.Message.getMapField(this, 7, opt_noLazyCreate,
      null));
};


/**
 * Clears values from the map. The map will be non-null.
 * @return {!proto.resources.ProtoBuffTest} returns this
 */
proto.resources.ProtoBuffTest.prototype.clearMapv1Map = function() {
  this.getMapv1Map().clear();
  return this;};


/**
 * map<int32, bool> mapV2 = 8;
 * @param {boolean=} opt_noLazyCreate Do not create the map if
 * empty, instead returning `undefined`
 * @return {!jspb.Map<number,boolean>}
 */
proto.resources.ProtoBuffTest.prototype.getMapv2Map = function(opt_noLazyCreate) {
  return /** @type {!jspb.Map<number,boolean>} */ (
      jspb.Message.getMapField(this, 8, opt_noLazyCreate,
      null));
};


/**
 * Clears values from the map. The map will be non-null.
 * @return {!proto.resources.ProtoBuffTest} returns this
 */
proto.resources.ProtoBuffTest.prototype.clearMapv2Map = function() {
  this.getMapv2Map().clear();
  return this;};


goog.object.extend(exports, proto.resources);

// message 'proto.resources.TypescriptTest1'
export const TypescriptTest1 = {
	pack:function(data){
		var msg = new proto.resources.TypescriptTest1();
		if(data.numberV != null)msg.setNumberv(data.numberV);
		if(data.numberG != null){
			for(var e of data.numberG){
				msg.addNumberg(e)
			}
		}
		if(data.numberM != null){
			var map = msg.getNumbermMap();
			for(var k in data.numberM){
				var v = data.numberM[k];
				map.set(k, v);
			}
		}
		if(data.stringV != null)msg.setStringv(data.stringV);
		if(data.stringG != null){
			for(var e of data.stringG){
				msg.addStringg(e)
			}
		}
		if(data.stringM != null){
			var map = msg.getStringmMap();
			for(var k in data.stringM){
				var v = data.stringM[k];
				map.set(k, v);
			}
		}
		if(data.enumV != null)msg.setEnumv(data.enumV);
		if(data.enumG != null){
			for(var e of data.enumG){
				msg.addEnumg(e)
			}
		}
		if(data.enumM1 != null){
			var map = msg.getEnumm1Map();
			for(var k in data.enumM1){
				var v = data.enumM1[k];
				map.set(k, v);
			}
		}
		if(data.enumM2 != null){
			var map = msg.getEnumm2Map();
			for(var k in data.enumM2){
				var v = data.enumM2[k];
				map.set(k, v);
			}
		}
		if(data.booleanV != null)msg.setBooleanv(data.booleanV);
		if(data.booleanG != null){
			for(var e of data.booleanG){
				msg.addBooleang(e)
			}
		}
		if(data.booleanM1 != null){
			var map = msg.getBooleanm1Map();
			for(var k in data.booleanM1){
				var v = data.booleanM1[k];
				map.set(k, v);
			}
		}
		if(data.booleanM2 != null){
			var map = msg.getBooleanm2Map();
			for(var k in data.booleanM2){
				var v = data.booleanM2[k];
				map.set(k, v);
			}
		}
		if(data.uint8arrayV != null)msg.setUint8arrayv(data.uint8arrayV);
		if(data.uint8arrayG != null){
			for(var e of data.uint8arrayG){
				msg.addUint8arrayg(e)
			}
		}
		if(data.uint8arrayM1 != null){
			var map = msg.getUint8arraym1Map();
			for(var k in data.uint8arrayM1){
				var v = data.uint8arrayM1[k];
				map.set(k, v);
			}
		}
		if(data.uint8arrayM2 != null){
			var map = msg.getUint8arraym2Map();
			for(var k in data.uint8arrayM2){
				var v = data.uint8arrayM2[k];
				map.set(k, v);
			}
		}
		return msg;
	},
	unpack:function(msg){
		var data = {}
		data.numberV = msg.getNumberv();
		data.numberG = msg.getNumbergList();
		var _map = {};
		var map = msg.getNumbermMap();
		for (var k of map.keys()){
			var v = map.get(k);
			_map[k] = v;
		}
		data.numberM = _map;
		data.stringV = msg.getStringv();
		data.stringG = msg.getStringgList();
		var _map = {};
		var map = msg.getStringmMap();
		for (var k of map.keys()){
			var v = map.get(k);
			_map[k] = v;
		}
		data.stringM = _map;
		data.enumV = msg.getEnumv();
		data.enumG = msg.getEnumgList();
		var _map = {};
		var map = msg.getEnumm1Map();
		for (var k of map.keys()){
			var v = map.get(k);
			_map[k] = v;
		}
		data.enumM1 = _map;
		var _map = {};
		var map = msg.getEnumm2Map();
		for (var k of map.keys()){
			var v = map.get(k);
			_map[k] = v;
		}
		data.enumM2 = _map;
		data.booleanV = msg.getBooleanv();
		data.booleanG = msg.getBooleangList();
		var _map = {};
		var map = msg.getBooleanm1Map();
		for (var k of map.keys()){
			var v = map.get(k);
			_map[k] = v;
		}
		data.booleanM1 = _map;
		var _map = {};
		var map = msg.getBooleanm2Map();
		for (var k of map.keys()){
			var v = map.get(k);
			_map[k] = v;
		}
		data.booleanM2 = _map;
		data.uint8arrayV = msg.getUint8arrayv();
		data.uint8arrayG = msg.getUint8arraygList();
		var _map = {};
		var map = msg.getUint8arraym1Map();
		for (var k of map.keys()){
			var v = map.get(k);
			_map[k] = v;
		}
		data.uint8arrayM1 = _map;
		var _map = {};
		var map = msg.getUint8arraym2Map();
		for (var k of map.keys()){
			var v = map.get(k);
			_map[k] = v;
		}
		data.uint8arrayM2 = _map;
		return data;
	}
};

// message 'proto.resources.TypescriptTest2'
export const TypescriptTest2 = {
	pack:function(data){
		var msg = new proto.resources.TypescriptTest2();
		if(data.test1V != null)msg.setTest1v(pbMgr.packMessage("proto.resources.TypescriptTest1", data.test1V));
		if(data.test1G != null){
			for(var e of data.test1G){
				msg.addTest1g(pbMgr.packMessage("proto.resources.TypescriptTest1", e))
			}
		}
		if(data.test1M1 != null){
			var map = msg.getTest1m1Map();
			for(var k in data.test1M1){
				var v = data.test1M1[k];
				v = pbMgr.packMessage("proto.resources.TypescriptTest1", v);
				map.set(k, v);
			}
		}
		if(data.test1M2 != null){
			var map = msg.getTest1m2Map();
			for(var k in data.test1M2){
				var v = data.test1M2[k];
				v = pbMgr.packMessage("proto.resources.TypescriptTest1", v);
				map.set(k, v);
			}
		}
		return msg;
	},
	unpack:function(msg){
		var data = {}
		data.test1V = pbMgr.unpackMessage('proto.resources.TypescriptTest1', msg.getTest1v());
		data.test1G = msg.getTest1gList().map(function(v){ return pbMgr.unpackMessage("proto.resources.TypescriptTest1", v); });
		var _map = {};
		var map = msg.getTest1m1Map();
		for (var k of map.keys()){
			var v = map.get(k);
			v = pbMgr.unpackMessage("proto.resources.TypescriptTest1", v);
			_map[k] = v;
		}
		data.test1M1 = _map;
		var _map = {};
		var map = msg.getTest1m2Map();
		for (var k of map.keys()){
			var v = map.get(k);
			v = pbMgr.unpackMessage("proto.resources.TypescriptTest1", v);
			_map[k] = v;
		}
		data.test1M2 = _map;
		return data;
	}
};

// message 'proto.resources.TypescriptTest3'
export const TypescriptTest3 = {
	pack:function(data){
		var msg = new proto.resources.TypescriptTest3();
		msg.setSuper(pbMgr.packMessage("proto.resources.TypescriptTest2", data));
		if(data.test2V != null)msg.setTest2v(pbMgr.packMessage("proto.resources.TypescriptTest2", data.test2V));
		if(data.test2G != null){
			for(var e of data.test2G){
				msg.addTest2g(pbMgr.packMessage("proto.resources.TypescriptTest2", e))
			}
		}
		if(data.test2M1 != null){
			var map = msg.getTest2m1Map();
			for(var k in data.test2M1){
				var v = data.test2M1[k];
				v = pbMgr.packMessage("proto.resources.TypescriptTest2", v);
				map.set(k, v);
			}
		}
		if(data.test2M2 != null){
			var map = msg.getTest2m2Map();
			for(var k in data.test2M2){
				var v = data.test2M2[k];
				v = pbMgr.packMessage("proto.resources.TypescriptTest2", v);
				map.set(k, v);
			}
		}
		return msg;
	},
	unpack:function(msg){
		var data = {}
		data = pbMgr.unpackMessage("proto.resources.TypescriptTest2", msg.getSuper());
		data.test2V = pbMgr.unpackMessage('proto.resources.TypescriptTest2', msg.getTest2v());
		data.test2G = msg.getTest2gList().map(function(v){ return pbMgr.unpackMessage("proto.resources.TypescriptTest2", v); });
		var _map = {};
		var map = msg.getTest2m1Map();
		for (var k of map.keys()){
			var v = map.get(k);
			v = pbMgr.unpackMessage("proto.resources.TypescriptTest2", v);
			_map[k] = v;
		}
		data.test2M1 = _map;
		var _map = {};
		var map = msg.getTest2m2Map();
		for (var k of map.keys()){
			var v = map.get(k);
			v = pbMgr.unpackMessage("proto.resources.TypescriptTest2", v);
			_map[k] = v;
		}
		data.test2M2 = _map;
		return data;
	}
};

// message 'proto.resources.ProtoBuffTest'
export const ProtoBuffTest = {
	pack:function(data){
		var msg = new proto.resources.ProtoBuffTest();
		if(data.floatV != null)msg.setFloatv(data.floatV);
		if(data.doubleV != null)msg.setDoublev(data.doubleV);
		if(data.int32V != null)msg.setInt32v(data.int32V);
		if(data.boolV != null)msg.setBoolv(data.boolV);
		if(data.bytesV != null)msg.setBytesv(data.bytesV);
		if(data.mapV1 != null){
			var map = msg.getMapv1Map();
			for(var k in data.mapV1){
				var v = data.mapV1[k];
				map.set(k, v);
			}
		}
		if(data.mapV2 != null){
			var map = msg.getMapv2Map();
			for(var k in data.mapV2){
				var v = data.mapV2[k];
				map.set(k, v);
			}
		}
		return msg;
	},
	unpack:function(msg){
		var data = {}
		data.floatV = msg.getFloatv();
		data.doubleV = msg.getDoublev();
		data.int32V = msg.getInt32v();
		data.boolV = msg.getBoolv();
		data.bytesV = msg.getBytesv();
		var _map = {};
		var map = msg.getMapv1Map();
		for (var k of map.keys()){
			var v = map.get(k);
			_map[k] = v;
		}
		data.mapV1 = _map;
		var _map = {};
		var map = msg.getMapv2Map();
		for (var k of map.keys()){
			var v = map.get(k);
			_map[k] = v;
		}
		data.mapV2 = _map;
		return data;
	}
};

export const TProtoBuffTest = proto.resources.ProtoBuffTest;
export const TTypescriptTest1 = proto.resources.TypescriptTest1;
export const TTypescriptTest2 = proto.resources.TypescriptTest2;
export const TTypescriptTest3 = proto.resources.TypescriptTest3;
